# -*- coding: utf-8 -*-
# @Time    : 2021/5/6 21:47
# @Author  : lilu
# @Email   : 1906196327@qq.com
# @File    : 使用类的方法实现斐波那契数列的迭代方法.py
# @Software: PyCharm


class Fib():
    def __init__(self):
        self.a, self.b = 0,1  # 初始化两个计数器a，b
    def __iter__(self): # 实例本身就是迭代对象，故返回自己
        return self
    def __next__(self):
        self.a, self.b = self.b, self.a + self.b  # 计算下一个值
        if self.a > 1000:  # 退出循环的条件
            # 手动触发迭代停止的异常
            raise StopIteration
        else:
            return self.a  # 返回下一个值
for n in Fib():
    print(n,end=" ")

